#include "GateSizing.h"

namespace ieda_contest {

/**
 * @brief Perform Gate Sizing
 * 
 * @param time      Total current running time of the program;
 * @param init_area Initial total cell area;
 * @param max_area  Max total cell area.
 */
void GateSizing::doGateSizing(double time, uint64_t &init_area, uint64_t &max_area) {
  std::cout << "doGateSizing start" << std::endl;
  TimingOptimizer *setup_optimizer = new TimingOptimizer(_db_interface);
  setup_optimizer->doGateSizing(time, init_area, max_area);
  std::cout << "doGateSizing end" << std::endl;
}

/**
 * @brief Perform Heuristic Gate DownSizing
 * 
 * @param init_area Initial total cell area;
 * @param max_area  Max total cell area.
 */
void GateSizing::doDownSize(uint64_t &init_area, uint64_t &max_area) {
  std::cout << "doDownSize start" << std::endl;
  TimingOptimizer *setup_optimizer = new TimingOptimizer(_db_interface);
  setup_optimizer->doDownSize(init_area, max_area);
  std::cout << "doDownSize end" << std::endl;
}

} // namespace ieda_contest
